apache 开启压缩功能

        这里的压缩并不是对网站的图片压缩,而是对普通的静态文件,诸如html, js, css 等元素压缩。不要小看这个压缩功能,如果一个网站的请求量很大的话,这样可以节省海量带宽,在我国带宽资源非常昂贵,所以小小的一个压缩功能可以为企业节省不少的成本呢!下面就来看看如何配置它?

        首先,需要看一下我们的apache是否支持压缩功能。

1
[root@lamp ~]# /usr/local/apache2/bin/apachectl -l

        看看是否有mod_deflate

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[root@lamp ~]# /usr/local/apache2/bin/apachectl -l
Compiled in modules:
core.c
mod_authn_file.c
mod_authn_default.c
mod_authz_host.c
mod_authz_groupfile.c
mod_authz_user.c
mod_authz_default.c
mod_auth_basic.c
mod_include.c
mod_filter.c
mod_log_config.c
mod_env.c
mod_setenvif.c
mod_version.c
prefork.c
http_core.c
mod_mime.c
mod_status.c
mod_autoindex.c
mod_asis.c
mod_cgi.c
mod_negotiation.c
mod_dir.c
mod_actions.c
mod_userdir.c
mod_alias.c
mod_so.c

        如果这里没有,那继续看一下。下面有没有 mod_deflate.so 这个文件

1
2
[root@lamp ~]# ls /usr/local/apache2/modules/
httpd.exp libphp5.so mod_deflate.so mod_expires.so mod_rewrite.so

        如果这里也没有,那说明你的apache不支持压缩,需要重编译一下,或者扩展形式安装,或者重新编译apache, 需要在编译的时候,加上 --enable-deflate=shared

        好,如果你的apache有了deflate这个模块支持,也就支持了压缩功能。

        下面该配置httpd.conf 了。

1
[root@lamp ~]# vim /usr/local/apache2/conf/httpd.conf

        在httpd.conf 中增加 :

1
LoadModule deflate_module modules/mod_deflate.so

        然后再增加如下配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<ifmodule mod_deflate.c>
DeflateCompressionLevel 6 #6是压缩级别,可以选择1-9
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/JavaScript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-PHP
AddOutputFilterByType DEFLATE image/svg+xml
<ifmodule>

        为什么要指定文件类型来压缩?

        答:压缩也是要消耗cpu资源的,图片/视频等文件,压缩效果也不好,一般压缩文本格式。

        另外上述代码也可以根据实际情况删减。